package edu.zqu.course.project.domain.pojo;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 课程大纲
 * </p>
 *
 * @author 郭泽鹏
 * @since 2020-06-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="CourseSyllabus对象", description="课程模块：课程大纲")
public class CourseSyllabus implements Serializable {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "课程大纲id")
      @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "学校id")
    private Long collegeId;

    @ApiModelProperty(value = "课程id")
    private Long courseId;

    @ApiModelProperty(value = "0理论课，1实践课")
    private Integer flag;

    @ApiModelProperty(value = "课程类别id")
    private Integer courseCategoryId;

    @ApiModelProperty(value = "课程种类id")
    private Integer courseSpeciesId;

    @ApiModelProperty(value = "课程分类id")
    private Integer courseClassificationId;

    @ApiModelProperty(value = "考核方式id")
    private Integer examTypeId;

    @ApiModelProperty(value = "考核形式id")
    private Integer examModeId;

    @ApiModelProperty(value = "学分")
    private Integer credit;

    @ApiModelProperty(value = "课程总学时")
    private Integer hour;

    @ApiModelProperty(value = "理论学时")
    private Integer theoreticalHours;

    @ApiModelProperty(value = "实践学时")
    private Integer practicalHours;

    @ApiModelProperty(value = "课内学时")
    private Integer inclassHour;

    @ApiModelProperty(value = "课外学时")
    private Integer outclassHour;

    @ApiModelProperty(value = "教学目标")
    private String teachGoal;

    @ApiModelProperty(value = "教学要求")
    private String teachRequire;

    @ApiModelProperty(value = "版本，如：2016版")
    private String version;

    @ApiModelProperty(value = "作者，执笔人")
    private Long authorId;

    @ApiModelProperty(value = "审核人")
    private Long auditorId;

    @ApiModelProperty(value = "创建时间")
      @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
      @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "操作者")
    private Long byWho;

    @ApiModelProperty(value = "本记录是否有效")
    @TableLogic
    private Boolean deleted;

    @ApiModelProperty(value = "历史版本")
    @Version
    private Long lastVersion;


}
